package course04

object AbstractApp {

  def main(args: Array[String]): Unit = {

    val b = ApplyTest()   //默认调用的是Object里面的appy方法,所以new这一步被apply这一步给干掉了！！
    val c = new ApplyTest()

    //类名（）  ===》   调用的是Object.apply
    //对象（）  ===》   调用的是Class.apply
    println(c)
    c()
  }

  class ApplyTest {
    def apply() = {
      println("进入class 里面的apply========")
      //在Object 中的 apply中new 一个class
      new ApplyTest

    }
  }

  object ApplyTest {
    println("进入ApplyTest------")
    var count = 0
    def incr = {
      count = count + 1
    }
    def apply() = {
      println("进入Object 里面的apply========")
      //在Object 中的 apply中new 一个class
      new ApplyTest
    }
    println("离开ApplyTest------")
  }
}